<html lang="en">
<title>Release Notes for Apache Derby 10.8.2.2</title>
<body>
<h1>
<a name="Release Notes for Apache Derby 10.8.2.2"></a>Release Notes for Apache Derby 10.8.2.2</h1>
<div>
<p>These notes describe the difference between Apache Derby release 10.8.2.2 and the preceding release 10.8.1.2.</p>
</div>
<ul>
<li>
<a href="#Overview">Overview</a>
</li>
<li>
<a href="#New Features">New Features</a>
</li>
<li>
<a href="#Bug Fixes">Bug Fixes</a>
</li>
<li>
<a href="#Issues">Issues</a>
</li>
<li>
<a href="#Build Environment">Build Environment</a>
</li>
<li>
<a href="#Verifying Releases">Verifying Releases</a>
</li>
</ul>
<h2>
<a name="Overview"></a>Overview</h2>
<div>


<p>
The most up to date information about Derby releases can be found on the
<a href="http://db.apache.org/derby/derby_downloads.html">Derby download page</a>.
</p>


<p>
Apache Derby is a pure Java relational database engine using standard SQL and
JDBC as its APIs. More information about Derby can be found on the
<a href="http://db.apache.org/derby/">Apache web site</a>.
Derby functionality includes:
</p>


<ul>

<li>Embedded engine with JDBC drivers</li>

<li>Network Server</li>

<li>Network client JDBC drivers</li>

<li>Command line tools: ij (SQL scripting), dblook (schema dump) and sysinfo (system info)</li>

</ul>


<p>
Java and JDBC versions supported:
</p>

<ul>
  
<li>Java SE 1.4 and higher with
    JDBC 2.1, 3.0, 4.0 and 4.1</li>
  
<li>Java ME CDC/Foundation Profile 1.1 with
    JSR-169 JDBC Optional Package for CDC/Foundation Profile.</li>

</ul>

</div>
<h2>
<a name="New Features"></a>New Features</h2>
<div>


<p>
This is a bug fix release. No new features were added.
</p>


</div>
<h2>
<a name="Bug Fixes"></a>Bug Fixes</h2>
<div>
<p>The following issues are addressed by Derby release 10.8.2.2. These issues are not addressed in the preceding 10.8.1.2 release.</p>
<table border="2">
<tr>
<td><b>Issue Id</b></td><td><b>Description</b></td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5452">DERBY-5452</a></td><td>Possible NPE in NsTest.printException()</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5448">DERBY-5448</a></td><td>In the 10.8 branch, back out the concurrency improvements introduced by using SequenceUpdaters to allocate identity values.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5447">DERBY-5447</a></td><td>Deadlock in AutomaticIndexStatisticsTest.testShutdownWhileScanningThenDelete (BasePage.releaseExclusive and Observable.deleteObserver (BaseContainerHandle))</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5445">DERBY-5445</a></td><td>Enhance existing concurrency test to stress sequence generators to also stress identity columns</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5444">DERBY-5444</a></td><td>SpawnedProcess.complete may fail to destroy the process when a timeout is specified</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5438">DERBY-5438</a></td><td>Empty MAPS table in toursdb</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5426">DERBY-5426</a></td><td>Improve the error raised by too much contention on a sequence/identity.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5421">DERBY-5421</a></td><td>NullPointerException during system.nstest.utils.Dbutil.update_one_row</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5419">DERBY-5419</a></td><td>Make Derby run on Oracle Java ME Embedded Client</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5418">DERBY-5418</a></td><td>Network server session's close method neglects to close down any open trace file</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5414">DERBY-5414</a></td><td>SysDiagVTIMappingTest.test_5391() failed: java.text.ParseException: Unparseable date: "Thu Sep 15 14:00:16 CEST 2011"</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5413">DERBY-5413</a></td><td>NetworkServerControl#main can exit with status 1 without printing an error message to console</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5412">DERBY-5412</a></td><td>MemoryLeakFixesTest.testRepeatedDatabaseCreationWithAutoStats() fails on phoneME: java.lang.InternalError: Number of class names exceeds vm limit.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5409">DERBY-5409</a></td><td>GrantRevokeDDLTest fails under Java 7</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5408">DERBY-5408</a></td><td>parameters for message 2200H - sequence generator does not cycle - is out of sync in non-English messages</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5404">DERBY-5404</a></td><td>Document DBO restriction for four diagnostic VTIs</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5402">DERBY-5402</a></td><td>Assignment instead of comparison in Driver20.getPropertyInfo</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5398">DERBY-5398</a></td><td>NullPointerException in storemore/bug3498.sql</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5396">DERBY-5396</a></td><td>DRDAStatement and DRDAConnThread swallow IOExceptions</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5395">DERBY-5395</a></td><td>By default, only the DBO should be allowed to run several of the diagnostic VTIs.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5394">DERBY-5394</a></td><td>Reduce chance of OOME with XAMemTest.testDerby4137_TransactionTimeoutSpecifiedNotExceeded in low memory suite</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5393">DERBY-5393</a></td><td>Remove old in-memory database purge mechanism</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5391">DERBY-5391</a></td><td>The syscs_diag.error_log_reader() and syscs_diag.statement_duration() vtis do not work on derby error logs created since 10.7.1</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5390">DERBY-5390</a></td><td>NPE in BasicDatabase.stop in replication slave mode (dd.clearSequenceCaches)</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5389">DERBY-5389</a></td><td>SequenceGeneratorTest failures with weme 6.2 sane build ASSERT FAILED Identity being changed on a live cacheable</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5385">DERBY-5385</a></td><td>Improve documentation for OFFSET/FETCH NEXT</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5384">DERBY-5384</a></td><td>Reference Guide talks about a DriverManager method which does not exist.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5376">DERBY-5376</a></td><td>Documentation should state authentication/authorization requirements more strongly</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5372">DERBY-5372</a></td><td>Need to document that the != and &lt;&gt; operators are pushed into Restricted table functions (once the work on DERBY-5369 wraps up)</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5367">DERBY-5367</a></td><td>Stale data retrieved when using new collation=TERRITORY_BASED:PRIMARY feature</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5362">DERBY-5362</a></td><td>HTML frameset files lack closing newline character</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5361">DERBY-5361</a></td><td>Document use of URLs with SQLJ.INSTALL_JAR</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5354">DERBY-5354</a></td><td>Remove unnecessary dita.regex build target</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5352">DERBY-5352</a></td><td>Derby table functions stored in a jar file inside the database which implement VTICosting or RestrictedVTI fail with ClassNotFoundException</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5350">DERBY-5350</a></td><td>Devguide needs update for definer's rights</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5339">DERBY-5339</a></td><td>Sample domain names should follow RFC 2606 conventions</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5336">DERBY-5336</a></td><td>Repeated database creation causes OutOfMemoryError</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5334">DERBY-5334</a></td><td>Incorrect permission arguments given for SYSCS_UTIL.SYSCS_SET_USER_ACCESS</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5333">DERBY-5333</a></td><td>Intermittent assert failure in testInterruptShutdown: thread's interrupted flag lost after shutdown</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5331">DERBY-5331</a></td><td>Incorrect use of CharsetEncoder in DDMWriter</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5329">DERBY-5329</a></td><td>Document who is allowed to run which system procedures/functions.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5325">DERBY-5325</a></td><td>Checkpoint fails with ClosedChannelException in InterruptResilienceTest</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5318">DERBY-5318</a></td><td>Use assertDirectoryDeleted in ReplicationRun and remove dead code</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5314">DERBY-5314</a></td><td>Enable i18n tests in non-English locales</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5312">DERBY-5312</a></td><td>InterruptResilienceTest failed with ERROR 40XD1: Container was opened in read-only mode.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5307">DERBY-5307</a></td><td>Document the behavior of the derby.language.sequence.preallocator property.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5304">DERBY-5304</a></td><td>test_derby_4779 (lang.GeneratedColumnsTest) fails with ibm 1.4.2; ERROR 42X50; No method was found that matched the method call java.lang.Integer.signum(int)</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5299">DERBY-5299</a></td><td>Document what you should expect to see if you enable authentication/authorization on a database which was created without those safeguards.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5292">DERBY-5292</a></td><td>SQLAuthorisation and views</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5291">DERBY-5291</a></td><td>test failure: NullPointerException with J2ME (weme 6.2) in testDerby4137_TransactionTimeoutSpecifiedNotExceeded(org.apache.derbyTesting.functionTests.tests.memory.XAMemTest)</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5289">DERBY-5289</a></td><td>Unable to boot 10.5.1.1 database - fails during soft/hard upgrade process for a new version number while trying to drop jdbc metadata</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5284">DERBY-5284</a></td><td>A derby crash at exactly right time during a btree split can cause a corrupt db which can not be booted.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5280">DERBY-5280</a></td><td>Large batch of DDL in a database procedure dies on a transaction severity error.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5278">DERBY-5278</a></td><td>AssertionFailedError in IndexSplitDeadlockTest.testBTreeForwardScan_fetchRows_resumeAfterWait_unique_split()</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5276">DERBY-5276</a></td><td>Reference manual has wrong length for BIGINT columns in system tables</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5274">DERBY-5274</a></td><td>getColumns() doesn't work with auto generated identity columns that start with large numbers</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5271">DERBY-5271</a></td><td>Client may hang if the server crashes due to a java.lang.Error</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5264">DERBY-5264</a></td><td>OOM issue using XA with timeouts with Java 1.4</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5262">DERBY-5262</a></td><td>Running JUnit tests with Java 1.4.2 fails if the package private tests are on the classpath</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5258">DERBY-5258</a></td><td>btree post commit releases latch before committing/aborting purges, possibly allowing other operation on page</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5255">DERBY-5255</a></td><td>Fix more difficult table problems</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5254">DERBY-5254</a></td><td>The keywords introduced by the CREATE SEQUENCE work are treated as reserved rather than unreserved.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5253">DERBY-5253</a></td><td>Engine code references org.apache.derby.shared.common.sanity.SanityManager</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5252">DERBY-5252</a></td><td>make GrantRevokeTest pass in non-English locale</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5251">DERBY-5251</a></td><td>make ErrorCodeTest pass in non-English locale</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5249">DERBY-5249</a></td><td>A table created with 10.0.2.1 with constraints cannot be dropped with 10.5 due to NullPointerException with insane build or ASSERT FAILED Failed to find sharable conglomerate descriptor for index conglomerate  with sane build</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5247">DERBY-5247</a></td><td>Warnings regarding XPath displayed when generating JavaDoc</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5243">DERBY-5243</a></td><td>assert failure in test testRAFReadWriteMultipleThreads: interrupted flag cleared</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5239">DERBY-5239</a></td><td>Remove usages of DriverManager to obtain an Embedded Connection in Derby Server</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5238">DERBY-5238</a></td><td>VARCHAR size typos in some documentation topics</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5236">DERBY-5236</a></td><td>Client driver silently truncates strings that exceed 32KB</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5233">DERBY-5233</a></td><td>Interrupt of create table or index (i.e. a container) will throw XSDF1 under NIO - connection survives</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5226">DERBY-5226</a></td><td>SQLJ system procedures should be documented in Reference Manual</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5223">DERBY-5223</a></td><td>Thread's interrupted flag not always preserved after Derby returns from JDBC API call</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5222">DERBY-5222</a></td><td>Compatibility tests fail to delete database directory</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5217">DERBY-5217</a></td><td>make ImportExportIJTest pass in non-English locale</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5215">DERBY-5215</a></td><td>Localize messages introduced or changed in 10.7 and 10.8</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5212">DERBY-5212</a></td><td>Reference Manual: language on authentication/authorization needs changes for several URL attribute topics</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5211">DERBY-5211</a></td><td>Make SysinfoCPCheckTest pass in non-English locale</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5205">DERBY-5205</a></td><td>Documentation: toc.html files need lang attribute</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5204">DERBY-5204</a></td><td>Misplaced p tags in release notes</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5203">DERBY-5203</a></td><td>Documentation of drop=true attribute contains error</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5198">DERBY-5198</a></td><td>XPLAIN table documentation needs some cleanup</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5191">DERBY-5191</a></td><td>Documentation needed for connection URL attribute retrieveMessageText</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5184">DERBY-5184</a></td><td>Tables in documentation need introductions and formatting fixes</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5158">DERBY-5158</a></td><td>Incomprehensible error message on client if attempting rollback after database has been shut down.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5120">DERBY-5120</a></td><td>Row from SYSDEPENDS gets deleted when a table has update triggers defined on it and an upate is made to the table</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5108">DERBY-5108</a></td><td>Intermittent failure in AutomaticIndexStatisticsTest.testShutdownWhileScanningThenDelete on Windows</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5098">DERBY-5098</a></td><td>embedded/in-memory: SQLNonTransientConnectionException: No current connection   due to invalid page format</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5097">DERBY-5097</a></td><td>testMTSelect(org.apache.derbyTesting.functionTests.tests.store.AutomaticIndex StatisticsMultiTest)junit.framework.AssertionFailedError: failed to get statisti cs for table MTSEL (#expected=2, timeout=0) on AIX IBM JDK 1.5</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5084">DERBY-5084</a></td><td>convert ijConnName.sql to a ScriptTest junit test</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5044">DERBY-5044</a></td><td>ALTER TABLE DROP COLUMN will not detect triggers defined on other tables with their trigger action using the column being dropped</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-5014">DERBY-5014</a></td><td>Tests should restore the timeout values to default after they are done running.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4984">DERBY-4984</a></td><td>ALTER TABLE DROP COLUMN may leave triggers invalid even if they are not using the column getting dropped.</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4779">DERBY-4779</a></td><td>NPE while inserting into a table which has a generated column and an insert trigger</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4670">DERBY-4670</a></td><td>ThreadDump class included in insane jars</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4669">DERBY-4669</a></td><td>ClassLoaderBootTest fails if derbyclient.jar comes before derby.jar on the classpath</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4647">DERBY-4647</a></td><td>BaseTestCase.execJavaCmd() does not work with weme 6.2</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4637">DERBY-4637</a></td><td>The Developer's Guide implies that, for in-memory database names, Derby does not resolve relative and absolute paths to the same in-memory database</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4617">DERBY-4617</a></td><td>Sysinfo.testSysinfoLocale failed with IB47 M 1.6 on Windows 7 64bit</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4443">DERBY-4443</a></td><td>Wrap rollback in exception handlers in try-catch</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4408">DERBY-4408</a></td><td>missing DOCTYPE and META tags in toc.html and index.html pages</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4275">DERBY-4275</a></td><td>Query executions fail when compressing a table using SYSCS_UTIL.SYSCS_COMPRESS_TABLE</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4260">DERBY-4260</a></td><td>Make derbynet/NetworkServerControlClientCommandTest run regardless of the locale</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4200">DERBY-4200</a></td><td>client side OutOfMemoryError running derbnetclientmats:jdbcapi/derbyStress</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-4137">DERBY-4137</a></td><td>OOM issue using XA with timeouts</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-3870">DERBY-3870</a></td><td>Concurrent Inserts of rows with XML data results in an exception</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-3337">DERBY-3337</a></td><td>convert jdbcapi/derbyStress.java to JUnit</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-2625">DERBY-2625</a></td><td>SEVERE error involving column-width property</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-2623">DERBY-2623</a></td><td>SEVERE error involving column-number property</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-2254">DERBY-2254</a></td><td>Assert during log file switch: log file position exceeded max log file size</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-1903">DERBY-1903</a></td><td>Convert  largedata/LobLimits.java to junit</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-1780">DERBY-1780</a></td><td>Document all supplied system procedures in the Server and Administration Guide (e.g. class loading utils and import/export)</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-1046">DERBY-1046</a></td><td>JVMInfo is duplicated in derbyclient.jar</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-484">DERBY-484</a></td><td>Documentation for derby.database.classpath in developers guide is misleading</td>
</tr>
<tr>
<td><a href="https://issues.apache.org/jira/browse/DERBY-159">DERBY-159</a></td><td>When Derby runs in Network Server mode, client does not receive warnings generated by Derby - should get documented</td>
</tr>
</table>
</div>
<h2>
<a name="Issues"></a>Issues</h2>
<div>
<p>Compared with the previous release (10.8.1.2), Derby release 10.8.2.2 introduces the following new features and incompatibilities. These merit your special attention.</p>
<ul>
<li>
<a href="#Note for DERBY-5395"><span>Note for DERBY-5395: 
Now, only the database owner may view several diagnostic VTIs: <i>syscs_diag.statement_cache</i>, <i>syscs_diag.transaction_table</i>, <i>syscs_diag.error_log_reader( )</i>, and <i>syscs_diag.statement_duration()</i>.
</span></a>
</li>
</ul>
<hr>
<h3>
<a name="Note for DERBY-5395"></a>Note for DERBY-5395</h3>
<div>


<h4>Summary of Change</h4>

<p>
Now, only the database owner may view several diagnostic VTIs: <i>syscs_diag.statement_cache</i>, <i>syscs_diag.transaction_table</i>, <i>syscs_diag.error_log_reader( )</i>, and <i>syscs_diag.statement_duration()</i>.
</p>


<!-- 
  DESCRIBE WHAT IT IS THAT THE USER ACTUALLY SEES WHEN THE PROBLEM OCCURS.

  For instance:

  In the previous release, applications were able to open two
  InputStreams on the same column. Depending on how these streams
  interacted, the value siphoned out of the column was erratic. Now
  Derby raises a SQLException when the application attempts to create
  the second InputStream.
-->


<h4>Symptoms Seen by Applications Affected by Change</h4>

<p>
Previously in a database with SQL authorization enabled, any user
could select from those diagnostic VTIs. Now only the database owner
can.
</p>



<h4>Incompatibilities with Previous Release</h4>

<p>
Application designers should ensure that only the database owner
selects from these VTIs. For most applications this should not be a
problem since the VTIs are intended to be used in production only as
technical support tools.
</p>



<h4>Rationale for Change</h4>

<p>
These VTIs reveal sensitive information which only authorized persons
should see.
</p>



<h4>Application Changes Required</h4>

<p>
Table functions with definer's rights can be used to grant other users
access to the information in these VTIs. For instance, the following
technique can be used to let ordinary users view the non-sensitive data in <i>syscs_diag.statement_cache</i>:
</p>


<p>
First, create a static Java method which selects only the
non-sensitive columns:
</p>


<pre>
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SafeCacheViewer
{
    public  static  ResultSet   safeCacheViewer()   throws SQLException
    {
        return DriverManager.getConnection( "jdbc:default:connection" ).prepareStatement
            ( "select id, schemaName, valid, compiled_at from syscs_diag.statement_cache" ).executeQuery();
    }
}
</pre>


<p>
Then the database owner should register the method as a table function
enjoying definer's rights, and grant EXECUTE
privilege on it to PUBLIC:
</p>


<pre>
create function safeCacheViewer()
returns table
(
    id char( 36 ),
    schemaName varchar( 128 ),
    valid boolean,
    compiled_at timestamp
)
language java parameter style derby_jdbc_result_set reads sql data
external security definer
external name 'SafeCacheViewer.safeCacheViewer';

grant execute on function safeCacheViewer to public;
</pre>


<p>
Finally, other users can select data from the table function as
follows (here test_dbo is the schema of the database owner):
</p>


<pre>
select * from table( test_dbo.safeCacheViewer() ) s;
</pre>



</div>
</div>
<h2>
<a name="Build Environment"></a>Build Environment</h2>
<div>
<p>Derby release 10.8.2.2 was built using the following environment:</p>
<ul>
<li>
<b>Branch</b> - Source code came from the 10.8 branch.</li>
<li>
<b>Machine</b> - Windows XP Professional Version 2002 Service Pack 3</li>
<li>
<b>Ant</b> - Apache Ant version 1.7.0 compiled on December 13 2006.</li>
<li>
<b>JDK 1.4</b> - Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2) Classic VM (build 1.4.2, J2RE 1.4.2 IBM Windows 32 build cn142ifx-20110211 (SR13 FP8+PM31983)).</li>
<li>
<b>Java 6</b> - Java(TM) SE Runtime Environment (build pwi3260sr9fp1-2011-0208_03(SR9 FP1) IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Windows XP x86-32 jvmwi3260sr9-20110203_74623).</li>
<li>
<b>Compiler</b> - The 1.6.0-b105 javac was used to compile all classes.</li>
<li>
<b>JSR 169</b> - Java ME support was built using libraries from IBM's j9 jvm from WEME 6.2.</li>
</ul>
</div>
<h2>
<a name="Verifying Releases"></a>Verifying Releases</h2>
<div>


<p>It is essential that you verify the integrity of the downloaded
files using the PGP and MD5 signatures.  MD5 verification ensures the
file was not corrupted during the download process.  PGP verification
ensures that the file came from a certain person.</p>


<p>The PGP signatures can be verified using
<a href="http://www.pgpi.org/">PGP</a> or
<a href="http://www.gnupg.org/">GPG</a>.
First download the Apache Derby
<a href="http://svn.apache.org/repos/asf/db/derby/code/trunk/KEYS">KEYS</a>
as well as the <code>asc</code> signature file for the particular
distribution. It is important that you get these files from the ultimate
trusted source - the main ASF distribution site, rather than from a mirror.
Then verify the signatures using ...</p>


<pre>
% pgpk -a KEYS
% pgpv db-derby-X.Y.tar.gz.asc

<em>or</em>

% pgp -ka KEYS
% pgp db-derby-X.Y.tar.gz.asc

<em>or</em>

% gpg --import KEYS
% gpg --verify db-derby-X.Y.tar.gz.asc

</pre>


<p>To verify the MD5 signature on the files, you need to use a program
called <code>md5</code> or <code>md5sum</code>, which is
included in many unix distributions.  It is also available as part of
<a href="http://www.gnu.org/software/textutils/textutils.html">GNU
Textutils</a>.  Windows users can get binary md5 programs from <a href="http://www.fourmilab.ch/md5/">here</a>, <a href="http://www.pc-tools.net/win32/freeware/console/">here</a>, or
<a href="http://www.slavasoft.com/fsum/">here</a>.</p>


<p>We strongly recommend that you verify your downloads with both PGP and MD5.</p>



</div>
</body>
</html>
